As use of and demand for consumer communication devices increases, advancements in size, performance and functionality are constantly being developed and improved. For example, many consumer devices such as content players, cellular phones, or the like employ a mass media storage device to house a wide variety of data. Generally, the host device can connect to the mass media storage device by way of a standard interface such as MultiMediaCard (MMC), Secure Digital (SD), Universal Serial Bus (USB), etc., and data can be transmitted according to one of these protocols.
Accordingly, applications running on the host can write data to the mass storage device as well as read data from the mass storage device, but commands that are more complex are often unavailable. One reason that can be so is that the MMC (or SD, USB, etc.) protocol, upon which much current hardware and software is based, was designed to efficiently transfer data between a host device and a mass storage device, so operations other than read and write are typically limited. Another reason is that since most mass storage device typically have flash memory configured as a block device, the hierarchical file system view available to the host (or applications running thereon) is not available to a controller or Central Processing Unit (CPU) on the mass storage device. Rather, the mass storage device CPU is only apprised of the type of operation (e.g., read or write) and the sector number.
Accordingly, attempts to utilize the more sophisticated command set of memory card controllers such as Subscriber Identity Module (SIM) cards or other smartcards with a mass storage device have been limited.